﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using ChartSharp;
using ChartSharp.QR;

namespace ChartSharp.Sample
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            /* ------------------------------------------------------------ */
            //
            // Example of creating a bar chart
            //
            var chart = new BarChart(BarsType.Grouped, BarsDirection.Vertical)
                .AxisType(new AxisType(new AxisTypes[]
                {
                    AxisTypes.x,
                    AxisTypes.y,
                }))
                .AxisLabel(new AxisLabels(new string[][]
                {
                    new string[] { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" },
                    new string[] { "0", "30", "60" },
                }))
                .BarSize(6, 1)
                .ZeroLine(0.5F)
                .Size(420, 125)
                .Color(new string[]
                {
                    "AA0000",
                    "0000AA",
                    "00AA00",
                    "AA00AA",
                })
                .DataSet(new int[][]
                {
                    new int[] { 10, 20, 30, 40, 50, 60 }, 
                    new int[] { 60, 50, 40, 30, 20, 10 },
                    new int[] { 10, 20, 10, 20, 10, 20 },
                    new int[] { 50, 60, 50, 60, 50, 60 },
                })
                .Title("My Grouped Bar Chart", "333333")
                .Legend(new string[]
                {
                    "Summer",
                    "Winter",
                    "Autumn",
                    "Spring",
                });

            /* ------------------------------------------------------------ */
            //
            // Example of creating a line chart
            //
            //chart = new LineChart()
            //    .AxisType(new AxisType(new AxisTypes[]
            //    {
            //        AxisTypes.x,
            //    }))
            //    .AxisLabel(new AxisLabels(new string[][]
            //    {
            //        new string[] { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" },
            //    }))
            //    .LineStyle(new LineStyles(new LineStyle[]
            //    {
            //        new LineStyle(3, 7, 1),
            //        new LineStyle(2, 7, 1),
            //    }))
            //    .Size(300, 125)
            //    .Color(new string[]
            //    {
            //        "1E90FF",
            //        "AA0000",
            //    })
            //    .Title("Line Chart\nSimple", "808000", 10)
            //    .DataSet(new int[][]
            //    {
            //        new int[] { 1, 25, 26, 51, 52, 61, 1 },
            //        new int[] { 1, 61, 52, 51, 26, 25, 1 },
            //    })
            //    .Legend(new string[]
            //    {
            //        "Summer",
            //        "Winter",
            //    });

            /* ------------------------------------------------------------ */
            //
            // Example of creating a pie chart
            //
            //chart = new PieChart(PieChartType.ThreeDimensional)
            //    .Size(200, 200)
            //    .Color(new string[]
            //    {
            //        "1E90FF",
            //    })
            //    .Title("Pie Chart\nSimple", "808000", 10)
            //    .DataSet(new int[]
            //    {
            //        30, 30, 40
            //    })
            //    .Legend(new string[]
            //    {
            //        "A",
            //        "B",
            //        "C",
            //    });

            /* ------------------------------------------------------------ */
            //
            // Example of creating a scatter plot
            //
            //chart = new ScatterPlot()
            //    .Size(420, 125)
            //    .Color(new string[]
            //    {
            //        "1e90ff",
            //    })
            //    .Title("Scatter Plot\nSimple")
            //    .DataSet(new int[][]
            //    {
            //        new int[] { 10, 20, 30, 40, 50, 60 },
            //        new int[] { 10, 25, 40, 54, 30, 5 },
            //        new int[] { 20, 50, 10, 50, 20, 20 },
            //    });

            /* ------------------------------------------------------------ */
            //
            // Example of creating a venn diagram
            //
            //chart = new VennDiagram()
            //    .Size(420, 125)
            //    .Color(new string[]
            //    {
            //        "AA0000",
            //        "00AA00",
            //        "0000AA",
            //    })
            //    .Title("Venn Diagram\nSimple")
            //    .DataSet(new int[]
            //    {
            //        100, 80, 60, 30, 25, 20, 10
            //    });

            /* ------------------------------------------------------------ */
            //
            // Example of creating a QR code
            //
            var qr = new QRCode(40, 40)
                .Text("tombell")
                .Encoding(QR.EncodingType.UTF8);

            pictureBox1.ImageLocation = chart.ToString();
            textBox1.Text = chart.ToString();
        }
    }
}
